package com.cloudkinto.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 亚马逊供应商api订单
 * </p>
 *
 * @author ding
 * @since 2024-06-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_order_amazon_vdf")
public class OrderAmazonVdfDo extends Model<OrderAmazonVdfDo> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 采购订单编号
     */
    @TableField("purchase_order_number")
    private String purchaseOrderNumber;

    /**
     * 客户订单号
     */
    @TableField("customer_order_number")
    private String customerOrderNumber;

    /**
     * 订单日期
     */
    @TableField("order_date")
    private Date orderDate;

    /**
     * 订单状态（new 新建 shipped已发货 accepted已受理 cancelled已取消
     */
    @TableField("order_status")
    private String orderStatus;

    /**
     * 是否优先发货 0否 1是
     */
    @TableField("is_priority_shipment")
    private Boolean isPriorityShipment = false;

    /**
     * 是否计划配送 0否 1是
     */
    @TableField("is_scheduled_delivery_shipment")
    private Boolean isScheduledDeliveryShipment = false;

    /**
     * 是否发送装箱单 0否 1是
     */
    @TableField("is_pslip_required")
    private Boolean isPslipRequired = false;

    /**
     * 是否包含礼物 0否1是
     */
    @TableField("is_gift")
    private Boolean isGift = false;

    /**
     * 承运商的包裹跟踪标识符
     */
    @TableField("tracking_number")
    private String trackingNumber = "";

    /**
     * 运输方式
     */
    @TableField("ship_method")
    private String shipMethod;

    /**
     * 运输方式名称
     */
    @TableField("ship_method_name")
    private String shipMethodName;

    /**
     * 标签文件url
     */
    @TableField("label_file_url")
    private String labelFileUrl = "";

    /**
     * 发票文件
     */
    @TableField("invoice_file_url")
    private String invoiceFileUrl = "";

    /**
     * 装箱单url
     */
    @TableField("packing_slip_url")
    private String packingSlipUrl = "";

    /**
     * 供应商期望发货时间
     */
    @TableField("required_ship_date")
    private Date requiredShipDate;

    /**
     * 承诺客户的交货日期
     */
    @TableField("promised_delivery_date")
    private Date promisedDeliveryDate;

    /**
     * 向客户发送订单状态消息
     */
    @TableField("message_to_customer")
    private String messageToCustomer = "";

    /**
     * 税额 json格式的税务详情
     */
    @TableField(value = "tax_total_json")
    private String taxTotalJson;

    /**
     * 税额
     */
    @TableField("tax_total")
    private BigDecimal taxTotal;

    /**
     * 供应商信息
     */
    @TableField("selling_party")
    private String sellingParty;

    /**
     * 供应商仓库信息
     */
    @TableField("ship_from_party")
    private String shipFromParty;

    /**
     * 从{@link #shipFromParty}获取的供应商仓库id
     */
    @TableField("ship_from_party_id")
    private String shipFromPartyId;

    /**
     * 收单方信息
     */
    @TableField("bill_to_party")
    private String billToParty;

    /**
     * 收货方个人、企业或机构的名称
     */
    @TableField("ship_name")
    private String shipName;

    /**
     * 收货人的代号
     */
    @TableField("ship_attention")
    private String shipAttention = "";

    /**
     * 收货地1
     */
    @TableField("ship_address1")
    private String shipAddress1;

    /**
     * 收货地2
     */
    @TableField("ship_address2")
    private String shipAddress2 = "";

    /**
     * 收货地3
     */
    @TableField("ship_address3")
    private String shipAddress3 = "";

    /**
     * 收货所在城市
     */
    @TableField("ship_city")
    private String shipCity;

    /**
     * 收货所在县
     */
    @TableField("ship_county")
    private String shipCounty = "";

    /**
     * 收货所在区
     */
    @TableField("ship_district")
    private String shipDistrict = "";

    /**
     * 所在的州或地区
     */
    @TableField("ship_state_or_region")
    private String shipStateOrRegion;

    /**
     * 地址邮编
     */
    @TableField("ship_postal_code")
    private String shipPostalCode;

    /**
     * 国家/地区代码
     */
    @TableField("ship_country_code")
    private String shipCountryCode;

    /**
     * 电话号码
     */
    @TableField("ship_phone")
    private String shipPhone;

    /**
     * 所属店铺id
     */
    @TableField("shop_id")
    private Long shopId;

    /**
     * 所属公司id
     */
    @TableField("company_id")
    private Long companyId;

    @TableField("is_send_out")
    private Integer isSendOut;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    @TableField("create_by")
    private Long createBy;

    @TableField("update_by")
    private Long updateBy;

    @TableLogic(value = "0", delval = "1")
    @TableField(value = "delete_flag", fill = FieldFill.INSERT)
    private Integer deleteFlag;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
